dashboard.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { useFlag } from 'common'
  2. import { useRouter } from 'next/router'
  3. import { useEffect } from 'react'
  4. import { PageContainer } from 'ui-patterns/PageContainer'
  5. import {
  6. PageHeader,
  7. PageHeaderDescription,
  8. PageHeaderMeta,
  9. PageHeaderSummary,
  10. PageHeaderTitle,
  11. } from 'ui-patterns/PageHeader'
  12. import { DashboardPreferences } from '@/components/interfaces/Settings/General/DashboardPreferences'
  13. import DefaultLayout from '@/components/layouts/DefaultLayout'
  14. import SettingsLayout from '@/components/layouts/ProjectSettingsLayout/SettingsLayout'
  15. import { IS_PLATFORM } from '@/lib/constants'
  16. import type { NextPageWithLayout } from '@/types'
  17. const Preferences: NextPageWithLayout = () => {
  18. const router = useRouter()
  19. // [Joshen] Using this flag to determine whether to show query preferences or not
  20. const showQueryPreferences = useFlag('dashboardPreferences')
  21. useEffect(() => {
  22. if (!IS_PLATFORM) {
  23. router.replace('/account/me#dashboard')
  24. }
  25. }, [router])
  26. if (!IS_PLATFORM) return null
  27. return (
  28. <>
  29. <PageHeader size="small">
  30. <PageHeaderMeta>
  31. <PageHeaderSummary>
  32. <PageHeaderTitle>Dashboard</PageHeaderTitle>
  33. <PageHeaderDescription>
  34. Configure dashboard query preferences for this project.
  35. </PageHeaderDescription>
  36. </PageHeaderSummary>
  37. </PageHeaderMeta>
  38. </PageHeader>
  39. <PageContainer size="small">{showQueryPreferences && <DashboardPreferences />}</PageContainer>
  40. </>
  41. )
  42. }
  43. Preferences.getLayout = (page) => (
  44. <DefaultLayout>
  45. <SettingsLayout title="general">{page}</SettingsLayout>
  46. </DefaultLayout>
  47. )
  48. export default Preferences